208. Implement Trie - LeetCode Solution


String design Trie

Python Code:

class TrieNode:
    def __init__(self, Node = None, flag = False):
        self.letters = [None] * 27
        self.flag = flag
        if Node:
            self.letters[ord(letter) - 97] = Node
    

class Trie:

    def __init__(self):
        self.root = TrieNode()

    def insert(self, word: str) -> None:
        a = self.root
        for i in range(len(word)):
            index = ord(word[i]) - 97
                
            if not a.letters[index]:
                if i == len(word) -1:
                    a.letters[index] = TrieNode(flag = True)
                    a = a.letters[index]
                    continue
                a.letters[index] = TrieNode()
                a = a.letters[index]
            else:
                a = a.letters[index]
                if i == len(word) -1:
                    a.flag = True
                    continue
                
                
                
                
                
                

    def search(self, word: str) -> bool:
        a = self.root
        index = ord(word[i]) - 97
        for i in range(len(word)):
            if not a.letters[index]:
                return False
            else:
                a = a.letters[index]
                if i == len(word) -1:
                    if a.flag == True:
                        return True
                continue
        return False
                
        

    def startsWith(self, prefix: str) -> bool:
        a = self.root
        for i in range(len(prefix)):
            if not a.letters[ord(prefix[i]) - 97]:
                return False
            else:
                a = a.letters[ord(prefix[i]) - 97]
        return True
        


# Your Trie object will be instantiated and called as such:
# obj = Trie()
# obj.insert(word)
# param_2 = obj.search(word)
# param_3 = obj.startsWith(prefix)


Comments

Submit
0 Comments
More Questions

1436A - Reorder
1363C - Game On Leaves
1373C - Pluses and Minuses
1173B - Nauuo and Chess
318B - Strings of Power
1625A - Ancient Civilization
864A - Fair Game
1663B - Mike's Sequence
448A - Rewards
1622A - Construct a Rectangle
1620A - Equal or Not Equal
1517A - Sum of 2050
620A - Professor GukiZ's Robot
1342A - Road To Zero
1520A - Do Not Be Distracted
352A - Jeff and Digits
1327A - Sum of Odd Integers
1276A - As Simple as One and Two
812C - Sagheer and Nubian Market
272A - Dima and Friends
1352C - K-th Not Divisible by n
545C - Woodcutters
1528B - Kavi on Pairing Duty
339B - Xenia and Ringroad
189A - Cut Ribbon
1182A - Filling Shapes
82A - Double Cola
45A - Codecraft III
1242A - Tile Painting
1663E - Are You Safe